آموزش جامع ساخت سرور WebSocket با Node.js سال 2024 بدون استفاده از کتابخانه - آخرین آپدیت

دانلود Authentic Node.js WebSocket Server Workshop 2024 for Everyone, No Libraries [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: یاد بگیرید چگونه یک سرور WebSocket کاملاً کاربردی در Node.js ایجاد کنید—بدون استفاده از هیچ کتابخانه خارجی. این دوره با بررسی ارتقای دست‌دهی (Handshake) HTTP آغاز شده و شما را مرحله به مرحله در فرآیند ساخت ارتباط دوطرفه و آنی (Real-time) راهنمایی می‌کند. شما یک سرور HTTP پیکربندی خواهید کرد، اتصالات WebSocket را برقرار می‌کنید و سازگاری با استاندارد RFC 6455 را برای دسترسی جهانی تضمین می‌کنید. در این دوره، مدیریت فریم‌های داده و هدرهای ورودی WebSocket را بررسی می‌کنید. مفاهیم کلیدی مانند استخراج بایت‌ها، محاسبه طول داده‌ها (Payload) و Unmasking داده‌ها برای رعایت استانداردهای پروتکل را خواهید آموخت. همچنین تکنیک‌های کاربردی دیباگ برای مدیریت داده‌ها و بهینه‌سازی سرور جهت ارتباطات روان و بدون وقفه را یاد می‌گیرید. در بخش‌های نهایی، مدیریت فریم‌های کنترلی شامل Ping، Pong و Close را برای بستن اصولی اتصالات WebSocket فرا می‌گیرید. با تمرکز بر مدیریت خطا و مدیریت اتصال، این دوره شما را برای ساخت سرورهایی که قادر به پاسخگویی به نیازهای دنیای واقعی هستند، آماده می‌کند. در پایان، شما مهارت لازم برای ساخت سرورهای WebSocket دوطرفه (Full-duplex) کارآمد در Node.js را خواهید داشت که بدون نیاز به کتابخانه‌های شخص ثالث، هر پروژه آنی را پشتیبانی می‌کند. ساخت سرور WebSocket مطابق با استاندارد RFC از صفر اعتبارسنجی و پیکربندی درخواست‌های Handshake در WebSocket تجزیه (Parse)، Unmask و رمزگشایی بهینه فریم‌های داده WebSocket مدیریت خطاهای WebSocket و بستن اصولی اتصالات دیباگ جریان داده‌ها برای پکت‌های کوچک و بزرگ پیاده‌سازی ارتباط امن و آنی بین کلاینت و سرور این دوره برای توسعه‌دهندگان وب و برنامه‌نویسان Node.js است که علاقه‌مند به ساخت اپلیکیشن‌های Real-time با کارایی بالا و در سطح Low-level هستند. آشنایی اولیه با WebSocket، جاوا اسکریپت و Node.js توصیه می‌شود. راهنمای جامع ساخت سرور WebSocket آنی * آموزش گام به گام هندشیک، مدیریت داده‌ها و فریم‌های کنترلی * تکنیک‌های عملی دیباگ، اعتبارسنجی و بستن اتصال برای افزایش پایداری

سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • برای ساخت سرور WebSocket، باید مطابق با استاندارد RFC باشیم To build a WebSocket server, we need to be RFC compliant

ایجاد سرور Node.js Creating a NodeJS Server

  • مروری بر HTML و CSS Overview of HTML and CSS

  • راه‌اندازی سرور HTTP Setting up our HTTP server

  • ایجاد ماژول‌های سفارشی و تکمیل سرور HTTP Creating custom modules and finishing off the HTTP server

  • پیاده‌سازی مدیریت خطاهای پایه Implementing basic error handling

  • استفاده از Run and Debug برای بررسی حلقه forEach Using "Run and Debug" to examine the forEach loop

  • تست کد مدیریت خطا Testing our error handling code

برقراری اتصال WebSocket Establishing a WebSocket Connection

  • استفاده از Event Listener مربوط به upgrade برای دریافت سه آبجکت مهم Using the 'upgrade' event listener to receive three important objects

  • بررسی آبجکت Request در ترمینال Examining the request object in the terminal

  • خواندن هدرهای درخواست Handshake کلاینت Reading the client's opening handshake request headers

  • ارسال پاسخ 400 Bad Request در صورت عدم تطابق هدرهای کلاینت Sending a "400 Bad Request" response if the client handshake headers fail

  • تولید آبجکت هدرهای پاسخ سرور Generate the server response headers object

  • استخراج Sec WebSocket Key و استفاده از ماژول crypto Extracting the Sec-WebSocket-Key and using the crypto module

  • تایم‌اوت! هش SHA و ماژول crypto چیستند؟ Timeout! What is SHA-hashing and the crypto module?

  • تولید مقدار Sec WebSocket Accept و ارسال هدرها به کلاینت Generate the Sec-WebSocket-Accept value and send back headers to the client

  • تست کد و برقراری یک اتصال WebSocket معتبر Testing our code and opening up a valid WebSocket connection

دریافت داده‌های WebSocket Receiving WebSocket Data

  • آماده‌سازی فایل برای هدف بعدی Setting up our file for the next goal

  • آبجکت Socket ارث‌بری از کلاس stream.Duplex The socket object inherits from the stream.Duplex class

  • تعریف هندلر رویداد داده (Data Event Handler) Defining our data event handler

  • برش سریع: افزودن Event Listener مربوط به end به آبجکت Socket Quick cut - adding the 'end' event listener to our socket object

  • تعریف تابع processBuffer() Define the processBuffer() function

  • ساختار فریم باینری WebSocket The WebSocket binary frame structure

  • کدنویسی تابع حلقه‌ای مدیریت تسک‌ها Coding the task management looping function

  • استخراج ۲ بایت اول داده از فریم WebSocket Extract the first 2 bytes of data from the WebSocket data frame

  • بافرها (Buffers) چیستند؟ What are Buffers?

  • چرا حرف a به صورت ۷ بایت ارسال می‌شود؟ Why is the letter "a" sent as 7 bytes?

  • استفاده از ابزار Debugger برای تحلیل کد Using the Debugger tool to analyze code

  • استخراج بیت FIN Extracting the FIN bit

  • عملگرهای بیتی (Bitwise Operators) Bitwise operators

  • استخراج اطلاعات MASK، OPCODE و LENGTH اولیه Extracting the MASK, OPCODE and initial LENGTH information

  • نوشتن کد برای استخراج جزئیات طول Payload Setting up code to extract the payload length details

  • سه دسته از طول‌های Payload The 3 categories of payload lengths

  • محاسبه طول Payload Calculating the payload length

  • بررسی‌های مربوط به طول Payload Payload length checks

  • استخراج کلید ماسک (Masking Key) Extract the Masking Key

  • تعریف متد getPayload() Define the getPayload() method

  • استخراج یک فریم کامل از داده‌ها (Masked) Extract one full frame of data (masked)

  • حذف ماسک از Payload فریم (Unmasking) Unmasking the frame payload

  • عملگر باقی‌مانده (Modulus) چیست؟ What is the modulus operand?

  • ایجاد آرایه قطعات پایدار و بررسی فریم‌های بیشتر (بررسی بیت FIN) Create a persistent fragments array and check for more frames (FIN bit check)

  • Payloadهای کوچک: استفاده از دیباگر برای تحلیل منطق SMALL payloads - Using the debugger to analyze logic

  • رفع خطا در متد consumePayload() Fixing the error in our consumePayload() method

  • افزودن دکمه prepopulate به HTML Adding a prepopulate button to the HTML

  • Payloadهای متوسط: استفاده از دیباگر برای تحلیل منطق MEDIUM Payloads - Using the debugger to analyze logic

  • Payloadهای بزرگ: بخش اول از ۳. درک منطق getLength() LARGE Payloads: Part 1 of 3. Understanding getLength() logic

  • Payloadهای بزرگ: بخش دوم از ۳. انتظار برای تکه‌های اضافی LARGE Payloads: Part 2 of 3. Waiting for additional chunks

  • Payloadهای بزرگ: بخش سوم از ۳. پردازش کل Payload در _fragments LARGE Payloads: Part 3 of 3. Processing the entire payload into _fragments

  • بهبودها، کامنت‌ها و افزودن بررسی‌های Opcode Improvements, comments, and adding opcode checks

  • پیشرفته: تفاوت اندازه تکه‌ها (Chunk size) بین دیباگر و محیط لایو Advanced - chunk size variation between debugger vs live environment

  • بهبود متد _getInfo() Improving our _getInfo() method

ارسال داده‌های WebSocket Sending WebSocket Data

  • آماده‌سازی فایل‌های پروژه برای ارسال داده به کلاینت Getting project files ready to send data to the client

  • محاسبه اندازه فیلد هدر با طول متغیر Calculating the size of the variable-length header field

  • ایجاد طرح کلی بافر فریم باینری Create the binary frame buffer blueprint

  • ایجاد اولین بایت از فریم Creating the first byte of the frame

  • عملگرهای Shift بیتی Bitwise shift operators

  • پر کردن هدر فریم با داده‌ها Populate the frame header with data

  • ارسال فریم به کلاینت Sending the frame to the client

  • تست دریافت فریم توسط کلاینت Testing whether the client received the frame

  • ایجاد تابع reset() Creating a reset() function

  • استفاده از ابزار دیباگر برای بررسی کد Using debugger tool to examine code

  • نمایش پیام WebSocket در سمت کلاینت Displaying the WebSocket message on the client-side

پاسخ به فریم بستن اتصال (Closure Frame) Responding to a Closure Frame

  • راه‌اندازی کد پروژه و تعریف هدف کوچک Setting up project code and defining our mini-goal

  • Handshake بستن اتصال Closing handshake

  • استخراج بدنه (کد بستن و دلیل) از فریم Close Extracting the body (closure code and reason) of the close frame

  • ساختار فریم Close Close Frame Structure

  • ساخت بافر Payload برای فریم Close Construct the payload buffer for the close frame

  • تکمیل و ارسال فریم نهایی Close به کلاینت Completing and sending the final close frame back to the client

  • تست کد Testing our code

  • استفاده از Wireshark برای تسلط بر فرآیند بستن TCP Using Wireshark to master the TCP closure process

  • بررسی نوع داده‌های ping و pong و Payloadهای بزرگتر از حداکثر اندازه Checking for "ping" and "pong" data type, and payloads larger than max size

  • استخراج پاسخ سرور از آبجکت CloseEvent Extracting the server response from the CloseEvent object

  • ارسال فریم بستن در صورتی که بیت Masking توسط کلاینت درست تنظیم نشده باشد Sending a closure frame if the masking bit is not set correctly by the client

  • بررسی اینکه آیا کلاینت کد بستن ارسال کرده است یا خیر Check whether client has sent a closure code

  • نمایش پیام بستن پیش‌فرض (برای رویداد بستن عادی) Displaying default closure message (for normal closure event)

  • اصلاح کامنت‌ها و حذف متن پاسخ سرور هنگام ایجاد اتصال جدید Fixing comments and removing server response text when a new connection is made

  • اعتبارسنجی متن در سمت سرور Server side validation for text

  • رفع مشکل Refresh که باعث توقف سرور می‌شد Fixing the refresh issue killing the server

نمایش نظرات

آموزش جامع ساخت سرور WebSocket با Node.js سال 2024 بدون استفاده از کتابخانه
جزییات دوره
8h 44m
78
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
SkillZone
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

SkillZone SkillZone

SkillZone هدف ساده آموزش مفاهیم پیچیده را به روشی بی دردسر دارد. آنها مستقر در ژوهانسبورگ هستند و راه حل های آموزش الکترونیکی با کیفیت و قابل درک ایجاد می کنند. در محیط کار امروزی که به سرعت در حال تحول است، اطمینان از داشتن مهارت ها و تخصص لازم برای موفقیت ضروری است. محتوایی که ما ارائه می‌دهیم تضمین می‌کند که مواد آموزشی و رویکرد ارائه برای برآورده کردن نتایج مورد نظر و رفع نیازهای آموزشی خاص شما بدون پوشش موضوعاتی که ممکن است غیرضروری یا نامربوط باشند، هماهنگ هستند. هدف نویسنده این است که به شما در یادگیری عمیق کمک کند و در عین حال از مشکلاتی که او در راه دشوار کشف کرده است اجتناب کنید. او مشتاق است و تدریس بسیار سرگرم کننده ای دارد و شخصیت و کاریزمای خود را به سکوی تدریس می آورد تا بیشترین بهره را از شاگردانش ببرد.